package org.example.service;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;
import reactor.core.publisher.Flux;

@AiService(
		wiringMode = AiServiceWiringMode.EXPLICIT,	//手动装配
		chatModel = "openAiChatModel",	//阻塞 指定模型
		streamingChatModel = "openAiStreamingChatModel", //流式 指定模型
		chatMemoryProvider = "chatMemoryProvider"
)
public interface ConsultantService
{
//	@SystemMessage("你是一名心理咨询师")
//	public Flux<String> chat(String mes);

	@SystemMessage(fromResource = "system.txt")	//提供文本设置
	public Flux<String> chat(@MemoryId String memoryId,@UserMessage String mes);

//	@UserMessage("1.友好且专业的语气回答2.简短回答，{{it}}")	//协助用户设置词条，it为默认参数表示用户消息
//	public Flux<String> chat(String mes);

//	@UserMessage("1.友好且专业的语气回答2.简短回答，{{mes}}")	//协助用户设置词条
//	public Flux<String> chat(@V("mes") String mes);
}